home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / tangosources.lha / scroll_sources / scroll.s next >
Encoding:
Text File  |  2008-06-03  |  9.2 KB  |  324 lines

  1.  
  2.     section ste,code_c
  3.     incdir    df1:
  4.     opt c-
  5.     include gamemacros
  6.  
  7.  
  8.  
  9.     
  10.     killsys
  11.  
  12.     move.l    #$70000,a0
  13.     move.l    #10240,d2
  14. cloop:
  15.     clr.l    (a0)+
  16.     dbf        d2,cloop
  17.  
  18.     move.l    #$60000,a0
  19.     move.l    #10240,d2
  20. dloop:
  21.     clr.l    (a0)+
  22.     dbf        d2,dloop
  23.  
  24. ;    move.l    #logo,d1
  25. ;    move.w    d1,b1l+2
  26. ;    swap    d1
  27. ;    move.w    d1,b1h+2
  28. ;    swap    d1
  29. ;    add.l    #40*256,d1
  30. ;    move.w    d1,a2l+2
  31. ;    swap    d1
  32. ;    move.w    d1,a2h+2
  33. ;    swap    d1
  34. ;    add.l    #40*256,d1
  35. ;    move.w    d1,a3l+2
  36. ;    swap    d1
  37. ;    move.w    d1,a3h+2
  38.  
  39.  
  40.     move.l    #newcop,$dff080
  41.     lea        custom,a5
  42. mouse:
  43.     move.l    vposr(a5),d0            
  44.     and.l    #$1ff00,d0
  45.     cmp.l    #$00100,d0    
  46.     bne.s    mouse
  47.     bsr        clear
  48.     bsr        scroller
  49.     bsr        copy
  50. testmouse:
  51.     btst    #6,$bfe001
  52.     bne.s    mouse
  53.     ressys
  54.     clr.l    d0
  55.     rts
  56.     
  57.  
  58. *****************************************************************************
  59. *                          BLIT SHIFT SCROLL ROUTINE                            *
  60. *****************************************************************************
  61.  
  62. scroller:
  63.     move.l    #-1,bltafwm(a5)
  64.     tst.l    scrolled                ;have we scrolled 16 pixels?
  65.     bne        scrollon                ;no
  66.     move.l    #15,scrolled            ;yes, reset
  67.     sub.l    d6,d6
  68.     lea        table(pc),a4
  69.     move.l    scrptr(pc),a3
  70.     move.b    (a3),d6
  71.     cmp.b    #255,d6                    ;end of scroll text?
  72.     bne.s    anotover                ;no
  73.     move.l    #scrolltext,scrptr
  74.     sub.l    d6,d6
  75.     rts
  76. anotover:
  77.     sub.b    #32,d6                    ;convert
  78.     add.w    d6,d6
  79.     move.w    (a4,d6),d6                ;got letter
  80.     add.l    #1,scrptr                ;update
  81.     blitwait
  82.     move.l    #$09f00000,bltcon0(a5)    ;minterm d=a
  83.     move.l    #font,a0
  84.     add.l    d6,a0
  85.     move.l    a0,bltapth(a5)
  86.     move.w    #38,bltamod(a5)
  87.     move.w    #46,bltdmod(a5)            ;screen is 2 words bigger
  88.     move.l    #$70000,bltdpth(a5)
  89.     move.w    #16<<6!1,bltsize(a5)
  90. scrollon:    
  91.     blitwait
  92.     move.w    #0,bltamod(a5)
  93.     move.w    #0,bltdmod(a5)
  94.     move.l    #$70000,bltdpth(a5)        ;coarse scroller
  95.     move.l    #$70002,bltapth(a5)
  96.     move.l    #$f9f00000,bltcon0(a5)
  97.     move.w    #16<<6!22,bltsize(a5)
  98.     sub.l    #1,scrolled
  99.     rts
  100.  
  101. copy:
  102.     lea        bltapth(a5),a1            ;source
  103.     lea        bltdpth(a5),a2            ;dest
  104.     lea        bltbpth(a5),a3            ;dest
  105.     lea        bltsize(a5),a4            ;blitsize
  106.     lea        bltcon0(a5),a6
  107.     move.w    #$3fe,d1
  108.     move.w    #22,d6
  109.     move.w    #46,d2                    ;modulo
  110.     move.w    #16<<6!1,d3                ;bltsize
  111.     move.l    #$0dfc0000,d7
  112.     move.l    #$70000,d4
  113.     move.l    screen_base,d5
  114.     move.l    #-1,bltalwm(a5)
  115.     move.w    d2,bltamod(a5)
  116.     move.w    d2,bltbmod(a5)
  117.     move.w    d2,bltdmod(a5)
  118.     add.w    #12,sinptr+2
  119.     and.l    d1,sinptr
  120.     lea        sintab(pc),a0
  121.     add.l    sinptr,a0
  122.     lea        bltafwm(a5),a5
  123. brloop:
  124.     move.w    #$8000,d1                ;mask
  125. coploop:
  126.     rept    16
  127.     move.w    d1,(a5)
  128.     add.w    (a0),d5
  129.     move.l    d4,(a1)                    ;source
  130.     move.l    d5,(a2)                    ;dest d
  131.     move.l    d5,(a3)                    ;dest b
  132.     sub.w    (a0)+,d5
  133.     move.l    d7,(a6)
  134.     move.w    d3,(a4)                    ;blitsize
  135.     ror.w    d1
  136.     endr
  137.     addq.w    #2,d4                    ;next along
  138.     addq.w    #2,d5                    ;next along
  139.     dbf        d6,brloop
  140.     lea        custom,a5
  141.     rts
  142.  
  143.  
  144. clear:
  145.     eor.w    #$4000,a1l+2
  146.     eor.w    #$4000,screen_base+2
  147.     move.l    screen_base,a1                    ; dst
  148.     blitwait
  149.     move.l    #$01f00000,bltcon0(a5)
  150.     move.l    #-1,bltafwm(A5)
  151.     move.w    #0,bltdmod(a5)
  152.     move.l    a1,bltdpth(A5)
  153.     move.w    #117*64+24,bltsize(a5)
  154.     Movem.l    a0-a6/d0-d7,-(a7)        
  155.     Movem.l    RegFiller(pc),a1-a6/d0-d7
  156.     move.l    screen_base,a0
  157.     add.w    #9000,a0
  158.     Rept    80                
  159.     Movem.l    a1-a6/d0-d7,-(a0)
  160.     Endr                    
  161.     Movem.l    (a7)+,a0-a6/d0-d7
  162.     Rts
  163. RegFiller
  164.     Dcb.l    16,0
  165.  
  166.     
  167. scrolled:
  168.     dc.l    15
  169. scrptr:
  170.     dc.l    scrolltext
  171. scrolltext:
  172.     DC.B    '   XENTRIX IS A NEW GROUP THAT HAS BEEN FORMED BY TWO'
  173.     DC.B    ' EX-MEMBERS OF CRYPTIC   THE OTHER MEMBERS OF CRYPTIC ARE'
  174.     DC.B    ' NOW CALLED ARENA  BUT THIS SMALL INTRO IS TO PLUG XENTRIX'
  175.     DC.B    ' AND NOT THEM.   XENTRIX CONSISTS OF THE FOLLOWING GUYZ'
  176.     DC.B    '     TANGO:CODER-SWAPPER      SMURF:SWAPPER      CARL:SWAPPER'
  177.     DC.B    '     FERRET:CODER-GFX-SFX      THIS INTRO WAS CODED BY TANGO'
  178.     DC.B    ' AND THE SINUS IS PRETTY FAST!        '
  179.     DC.B    ' IF YOU WOULD LIKE TO JOIN OUR CREW THEN WRITE TO THIS ADDRESS:'
  180.     DC.B    '    TANGO:  368 HIGHFIELD ROAD, FARNWORTH, BOLTON, LANCASHIRE.'
  181.     DC.B    '  BL4-OPG    ENGLAND!    OR YOU CAN PHONE ME ON....'
  182.     DC.B    '   0204-795267 (AFTER 5PM!), WELL THATS ALL TILL NEXT TIME'
  183.     DC.B    '   BYE!                      '
  184.     DC.B    255
  185.     even
  186.  
  187.  
  188. *****************************************************************************
  189. *                                NEW COPPER LIST                                *
  190. *****************************************************************************
  191.  
  192. newcop:
  193.     cmove    bpl1mod,2
  194.     cmove    bpl2mod,2    
  195.     cmove    bplcon0,$1200
  196.     cmove    diwstrt,$2c81
  197.     cmove    diwstop,$2cc1
  198.     cmove    ddfstrt,$28
  199.     cmove    ddfstop,$d8
  200.     cmove    bpl1pth,$0007
  201. a1l    cmove    bpl1ptl,$1000
  202.     cmove    color00,$000
  203.     cwait    40,0
  204.     cmove    color00,$11f
  205.     cwait    41,0
  206.     cmove    color00,$000
  207.     cwait    255,0
  208.     cmove    bpl1mod,0
  209.     cmove    bpl2mod,0    
  210.     cmove    bplcon0,$3200
  211.     cmove    ddfstrt,$38
  212.     cmove    ddfstop,$d0
  213. b1h    cmove    bpl1pth,$0000
  214. b1l    cmove    bpl1ptl,$0000
  215. a2h    cmove    bpl2pth,$0000
  216. a2l    cmove    bpl2ptl,$0000
  217. a3h    cmove    bpl3pth,$0000
  218. a3l    cmove    bpl3ptl,$0000
  219.     dc.w    $0182,$0eee,$0184,$0cce,$0186,$09ae
  220.     dc.w    $0188,$077e,$018a,$055f,$018c,$023f,$018e,$000f
  221.     end_copper
  222.  
  223.     
  224. *****************************************************************************
  225. *                                CHARACTER TABLE                                *
  226. *****************************************************************************
  227.  
  228. table:
  229.     dc.w    0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38
  230.     dc.w    (16*40),2+(16*40),4+(16*40),6+(16*40),8+(16*40),10+(16*40)
  231.     dc.w    12+(16*40),14+(16*40),16+(16*40),18+(16*40),20+(16*40),22+(16*40)
  232.     dc.w    24+(16*40),26+(16*40),28+(16*40),30+(16*40),32+(16*40),34+(16*40)
  233.     dc.w    36+(16*40),38+(16*40)
  234.     dc.w    (16*80),2+(16*80),4+(16*80),6+(16*80),8+(16*80),10+(16*80)
  235.     dc.w    12+(16*80),14+(16*80),16+(16*80),18+(16*80),20+(16*80),22+(16*80)
  236.     dc.w    24+(16*80),26+(16*80),28+(16*80),30+(16*80),32+(16*80),34+(16*80)
  237.     dc.w    36+(16*80),38+(16*80)
  238.     even
  239.  
  240.  
  241. screen_base:
  242.     dc.l    $71000
  243. sinptr:
  244.     dc.l    sintab
  245. sintab:    
  246.     rept    3
  247.     dc.w    170*48,170*48,170*48,170*48,170*48,170*48,170*48,170*48
  248.     dc.w    170*48,169*48,169*48,169*48,169*48,169*48,169*48,169*48
  249.     dc.w    168*48,168*48,168*48,168*48,167*48,167*48,167*48,167*48
  250.     dc.w    166*48,166*48,166*48,165*48,165*48,165*48,164*48,164*48
  251.     dc.w    164*48,163*48,163*48,162*48,162*48,161*48,161*48,160*48
  252.     dc.w    160*48,159*48,159*48,158*48,158*48,157*48,157*48,156*48
  253.     dc.w    156*48,155*48,154*48,154*48,153*48,153*48,152*48,151*48
  254.     dc.w    151*48,150*48,149*48,149*48,148*48,147*48,147*48,146*48
  255.     dc.w    145*48,144*48,144*48,143*48,142*48,141*48,141*48,140*48
  256.     dc.w    139*48,138*48,137*48,136*48,136*48,135*48,134*48,133*48
  257.     dc.w    132*48,131*48,130*48,130*48,129*48,128*48,127*48,126*48
  258.     dc.w    125*48,124*48,123*48,122*48,121*48,120*48,119*48,118*48
  259.     dc.w    118*48,117*48,116*48,115*48,114*48,113*48,112*48,111*48
  260.     dc.w    110*48,109*48,108*48,107*48,106*48,105*48,104*48,103*48
  261.     dc.w    102*48,101*48,100*48,99*48,97*48,96*48,95*48,94*48
  262.     dc.w    93*48,92*48,91*48,90*48,89*48,88*48,87*48,86*48
  263.     dc.w    85*48,84*48,83*48,82*48,81*48,80*48,79*48,78*48
  264.     dc.w    77*48,76*48,75*48,74*48,73*48,71*48,70*48,69*48
  265.     dc.w    68*48,67*48,66*48,65*48,64*48,63*48,62*48,61*48
  266.     dc.w    60*48,59*48,58*48,57*48,56*48,55*48,54*48,53*48
  267.     dc.w    52*48,52*48,51*48,50*48,49*48,48*48,47*48,46*48
  268.     dc.w    45*48,44*48,43*48,42*48,41*48,40*48,40*48,39*48
  269.     dc.w    38*48,37*48,36*48,35*48,34*48,34*48,33*48,32*48
  270.     dc.w    31*48,30*48,29*48,29*48,28*48,27*48,26*48,26*48
  271.     dc.w    25*48,24*48,23*48,23*48,22*48,21*48,21*48,20*48
  272.     dc.w    19*48,19*48,18*48,17*48,17*48,16*48,16*48,15*48
  273.     dc.w    14*48,14*48,13*48,13*48,12*48,12*48,11*48,11*48
  274.     dc.w    10*48,10*48,9*48,9*48,8*48,8*48,7*48,7*48
  275.     dc.w    6*48,6*48,6*48,5*48,5*48,5*48,4*48,4*48
  276.     dc.w    4*48,3*48,3*48,3*48,3*48,2*48,2*48,2*48
  277.     dc.w    2*48,1*48,1*48,1*48,1*48,1*48,1*48,1*48
  278.     dc.w    0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
  279.     dc.w    0*48,0*48,0*48,0*48,0*48,0*48,0*48,0*48
  280.     dc.w    0*48,1*48,1*48,1*48,1*48,1*48,1*48,1*48
  281.     dc.w    2*48,2*48,2*48,2*48,3*48,3*48,3*48,3*48
  282.     dc.w    4*48,4*48,4*48,5*48,5*48,5*48,6*48,6*48
  283.     dc.w    6*48,7*48,7*48,8*48,8*48,9*48,9*48,10*48
  284.     dc.w    10*48,11*48,11*48,12*48,12*48,13*48,13*48,14*48
  285.     dc.w    14*48,15*48,16*48,16*48,17*48,17*48,18*48,19*48
  286.     dc.w    19*48,20*48,21*48,21*48,22*48,23*48,23*48,24*48
  287.     dc.w    25*48,26*48,26*48,27*48,28*48,29*48,29*48,30*48
  288.     dc.w    31*48,32*48,33*48,34*48,34*48,35*48,36*48,37*48
  289.     dc.w    38*48,39*48,40*48,40*48,41*48,42*48,43*48,44*48
  290.     dc.w    45*48,46*48,47*48,48*48,49*48,50*48,51*48,52*48
  291.     dc.w    52*48,53*48,54*48,55*48,56*48,57*48,58*48,59*48
  292.     dc.w    60*48,61*48,62*48,63*48,64*48,65*48,66*48,67*48
  293.     dc.w    68*48,69*48,70*48,71*48,73*48,74*48,75*48,76*48
  294.     dc.w    77*48,78*48,79*48,80*48,81*48,82*48,83*48,84*48
  295.     dc.w    85*48,86*48,87*48,88*48,89*48,90*48,91*48,92*48
  296.     dc.w    93*48,94*48,95*48,96*48,97*48,99*48,100*48,101*48
  297.     dc.w    102*48,103*48,104*48,105*48,106*48,107*48,108*48,109*48
  298.     dc.w    110*48,111*48,112*48,113*48,114*48,115*48,116*48,117*48
  299.     dc.w    118*48,118*48,119*48,120*48,121*48,122*48,123*48,124*48
  300.     dc.w    125*48,126*48,127*48,128*48,129*48,130*48,130*48,131*48
  301.     dc.w    132*48,133*48,134*48,135*48,136*48,136*48,137*48,138*48
  302.     dc.w    139*48,140*48,141*48,141*48,142*48,143*48,144*48,144*48
  303.     dc.w    145*48,146*48,147*48,147*48,148*48,149*48,149*48,150*48
  304.     dc.w    151*48,151*48,152*48,153*48,153*48,154*48,154*48,155*48
  305.     dc.w    156*48,156*48,157*48,157*48,158*48,158*48,159*48,159*48
  306.     dc.w    160*48,160*48,161*48,161*48,162*48,162*48,163*48,163*48
  307.     dc.w    164*48,164*48,164*48,165*48,165*48,165*48,166*48,166*48
  308.     dc.w    166*48,167*48,167*48,167*48,167*48,168*48,168*48,168*48
  309.     dc.w    168*48,169*48,169*48,169*48,169*48,169*48,169*48,169*48
  310.     dc.w    170*48,170*48,170*48,170*48,170*48,170*48,170*48,170*48
  311.     endr
  312.     
  313.  
  314. *****************************************************************************
  315. *                                    BINARIES                                *
  316. *****************************************************************************
  317.  
  318. font:
  319.     incbin    gfx/font.bin
  320.     even
  321. logo:
  322.     incbin    gfx/logo.bin    
  323.     even
  324.